Designers of digital circuits rely upon computer aided techniques. Standard hardware description languages (HDLs) such as Verilog and VHDL have been developed that are used to describe digital circuits. HDLs allow a designer to create a definition of a digital circuit design at the gate level, the register transfer level (RTL), or the behavioral level using abstract data types.
The design process typically entails writing a circuit design as HDL code and subsequently compiling the HDL code as part of a process called “synthesis.” The compiler generates an RTL netlist. The RTL netlist may be technology independent in that the netlist is independent of a particular technology and/or architecture of a specific vendor's integrated circuit.
Synthesis may also include mapping where low level logic gates of the RTL netlist are correlated, or matched, to the various types of circuit blocks that are actually available in a particular technology and/or architecture of a specific vendor's integrated circuit (the “target IC”). For example, a plurality of logic gates of the technology independent RTL netlist may be mapped to a single lookup table (LUT). The mapped circuit design specifies the same functionality as the low-level design implementation, albeit in terms of the particular circuit blocks available on the target IC as opposed to low-level logic gates.
The circuit design may then be placed. Placement is the process of assigning elements of the synthesized circuit design to particular instances of circuit blocks and/or resources having specific locations on the target IC. Once placed, a circuit element of the circuit design has a specific location on the target IC as opposed to only being assigned to a particular type of circuit block and/or resource as is the case after mapping and prior to placement. The location of a circuit element of a circuit design, once placed, is the location on the target IC of the instance of the circuit block and/or resource to which the circuit element is assigned.
Routing is the process of selecting particular routing resources such as wires, programmable interconnection points (PIPs), PIP settings, and/or other interconnect circuitry to electrically couple the various circuit blocks of the target IC after placement. As part of the routing process, routing resources, e.g., routing circuitry, is assigned to each net of the circuit design to connect sources and sinks. While the resulting circuit design may be further optimized, the routed circuit design may be loaded and/or implemented within an IC.